Non-transitory computer-readable recording medium, information processing apparatus and printing method

ABSTRACT

A supporting program is executable by a controller of an information processing apparatus and corresponds to a printer connected to the information processing apparatus. The supporting program causes the information processing apparatus to perform processing intermediate image data in accordance with a print parameter received in a print parameter editing process, displaying an image indicated by the processed inter mediate image data on a print preview screen. The information processing apparatus does not restrict printing when print continuation is instructed, while restricting the printing when re-edit or print cancel is instructed.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation application of U.S. Ser. No.16/747,923 filed on Jan. 21, 2020 and claims priority under 35 U.S.C. §119 from Japanese Patent Application No. 2019-017065 filed on Feb. 1,2019. The entire subject matter of the applications is incorporatedherein by reference.

BACKGROUND Technical Field

The technical field disclosed in the present specification relates to anon-transitory computer-readable recording medium containinginstructions realizing a support program which supports control of aprinter, an information processing apparatus and a printing method.

Related Art

As a technique to control a printer from an information processingapparatus such as a personal computer, a configuration of installing aprinter driver in the information processing apparatus, generating printdata using the printer driver and transmitting the print data has beenwidely known. The printer driver is provided by a manufacturer of aprinter and is adapted to various functions the printer has, and thuscan make full use of the printer.

SUMMARY

Recently, a technique of controlling a printer using a printing programwhich is standardly implemented in an operating system (OS), withoutusing the above-mentioned printer driver, has been in practical use.According to such a technique, the OS associates a printer with theOS-standard printing program. Thereafter, it becomes possible that, whenthe OS receives a print instruction corresponding to the printer,printing is executed using the OS-standard printing program, withoutusing the printer driver.

Even in the above-mentioned printing using the OS-standard printingprogram, as with the printing using the printer driver, it is desirablethat a processing function for generating print data in which processessuch as an magnification/reduction process and a combining process areapplied to an image indicated by image data is supported. If theOS-standard printing program supports such processing function, it ispossible that processes that are not intended by the user are applied tothe print data due to setting mistake by the user or the like. If suchprint data to which processes are applied is transmitted to a printer, aprint product that the user desires will not be output and expendablesupplies will be wastefully consumed.

The present specification discloses a technique of reducing printingbased on an image to which processes that are not intended by the userare applied in an information processing apparatus in which anOS-standard printing program is implemented.

According to aspects of the present disclosure, there is provided anon-transitory computer-readable recording medium for an informationprocessing apparatus, the information processing apparatus having acontroller, a printer being connected to the information processingapparatus, the recording medium containing computer-executableinstructions realizing a supporting program corresponding to the printerconnected to the information processing apparatus, the supportingprogram causing, when executed by the controller, the informationprocessing apparatus to perform, when a general-use printing programreceives a printing command to cause the printer to execute printing ofan image, a receiving process of receiving a process setting used forprocessing intermediate image data output from the general-use printingprogram, the intermediate image data being image data indicating animage subjected to be printed in accordance with the printing command,the general-use printing program being a program implemented in anoperating system of the information processing apparatus in advance, anintermediate image data processing process of generating a processedintermediate image data which is the intermediate image data to which aprocess based on the process setting is applied, a determining processof determining whether a condition for restricting printing based on theprocessed intermediate image data is satisfied, and a restrictingprocess of executing a first process of restricting printing based onthe processed intermediate image data when determining that thecondition is satisfied, and executing a second process of notrestricting the printing based on the processed intermediate image datawhen determining that the condition is not satisfied.

BRIEF DESCRIPTION OF THE ACCOMPANYING DRAWINGS

FIG. 1 is a block diagram showing an electrical configuration of a printsystem.

FIG. 2 is a sequential chart showing characteristic parts of asupporting program.

FIG. 3 illustrates an example of a print parameter editing screen.

FIG. 4 illustrates an example of a print preview screen.

FIG. 5 is a flowchart showing a procedure an intermediate image dataprocessing process.

FIG. 6 is a flowchart showing a variation of an intermediate image dataprocessing process.

DETAILED DESCRIPTION OF THE EMBODIMENT

Hereinafter, referring to the accompanying drawings, a print systemusing programs according to the embodiment will be described in detail.The present embodiment shows a concrete example of the print systemincluding a personal computer (hereinafter, referred to as a “PC”) and aprinter.

An example of a configuration of a print system in which programsaccording to the embodiment are executed is shown in FIG. 1. The systemshown in FIG. 1 includes a PC 1, a printer 2 and a printer 3. The PC 1is an example of an information processing apparatus. The printer 2 andthe printer 3 are devices having a printing function and are configuredto communicate with the PC 1 through a local communication or a networkcommunication.

As shown in FIG. 1, the PC 1 includes a controller 10, a user interface(hereinafter, referred to as a “UI”) 20 and a communication interface(hereinafter, referred to as a “communication I/F”) 30. The UI 20 andthe communication I/F 30 are electrically connected to the controller10.

The UI 20 includes hardware configured to display various pieces ofinformation and receive user's input of instructions. The UI 20 mayinclude a touch panel having both an input receiving function and adisplaying function, or a combination of a display having a displayingfunction and a keyboard or a mouse having an input receiving function.

The communication I/F 30 includes hardware configured to communicatewith the printer 2 and a hardware configured to access the Internet. Thecommunication I/F 30 may include multiple interfaces respectivelyemploying different communication methods. Examples of the communicationmethods may include the network communication, a USB communication andthe like. Further, the communication methods may be wired or wireless.

The controller 10 includes a CPU 11 and a memory 12. The CPU 11 is anexample of a computer. The memory 12 includes a ROM, a RAM and anon-volatile memory and stores various application programs(hereinafter, referred to as “APP's”) and various pieces of data.According to the present specification, details of the memories could beignored and any memory having a suitable function could be employed asthe memory 12. The CPU 11 executes various processes in accordance withprograms retrieved from the memory 12 or in accordance with user'sinstructions. It is noted that the controller 10 in FIG. 1 is acollective name including hardware and software used to control the PC 1and does not necessarily represent a single piece of hardware.

An example of the memory 12 may be a computer-readable storage medium.The computer-readable storage medium is a non-transitory medium.Examples of the non-transitory medium are, besides the above-describedmemory 12, recording mediums such as a CD-ROM, a DVD-ROM and the like.It is noted that the non-transitory medium is also a tangible medium. Incontrast, an electric signal carrying a program, which is beingdownloaded from a server on the Internet, is a signal medium which is akind of computer-readable media, but not included in the non-transitorycomputer-readable medium.

The memory 12 stores, as shown in FIG. 1, the OS 21 implemented with ageneral-use printing program 41, a supporting program 42 and an editingAPP 43. The supporting program 42 is an example of a supporting program.The supporting program 42 is, for example, a hardware support APP(abbreviated as HSA) of which specification is published by MicrosoftCorporation. The OS 21 is, for example, Microsoft Windows®, MacOS® orLinux®. It is noted that, in the memory 12, in addition to the data/APPshown in FIG. 1, various pieces of data including information regardingconnected device, various programs of browser and the like are stored.

The general-use printing program 41 is an APP to cause various printerssuch as the printer 2 to execute printing from the PC 1 and is anOS-standard printing program which is implemented in the OS 21 inadvance. The general-use printing program 41 according to the presentembodiment is configured to generate print data the printer can use forprinting based on image data subjected to be printed. The general-useprinting program 41 is an example of a printing program.

The general-use printing program 41 is a general-purpose APP which canbe used for any of a plurality of models of printers supplied by variousprinter venders. The general-use printing program 41 is configured tocause any of the plurality of models of printers to perform operationswhich are commonly implemented in the plurality of models of printers.Alternatively, the general-use printing program 41 may be a programsupplied from the printer venders to a vender of the OS 21 (e.g., theprogram may be a kind of printer drive, which supplied by a printervendor, to be implemented in the OS 21 in advance) so that thegeneral-use printing program 41 is implemented in the OS 21 in advance.

The supporting program 42 is a program which executes processes based onthe instruction by the OS 21 in association with the startup of thegeneral-use printing program 41 and an APP which supports controlling ofhardware subjected to the instruction. The supporting program 42 isstarted, for example, by the general-use printing program 41. Thesupporting program 42 is a program that is prepared by printer venders,such as a vender of the printer 2, for each type of printers. Forexample, a supporting program 42 for inkjet printers and a supportingprogram 42 for laser printers are prepared. The supporting program 42may be prepared not only for each type of printers but also for eachmodel or for each model series of printers.

The vender of the printer registers the supporting program 42 with aplatform supplied by the vender of the OS 21 in accordance with aprocedure designated by the vender of the OS 21. When a printer 2 isnewly connected to the PC 1 and the supporting program 42 correspondingto the printer 2 is registered with the platform, the OS 21 downloadsthe supporting program 42 from a sever in which the supporting program42 is stored and implements the same in the PC 1.

Then, the OS 21 associates identification information of the implementedsupporting program 42 with the printer information of the newlyconnected printer 2 and stores the same in the memory 12. In the PC 1 towhich a plurality of models of printers are connected, a plurality ofsupporting programs respectively corresponding to a plurality of typesof the plurality of models are implemented in the OS 21, and informationassociating the plurality of printers with the plurality of supportingprograms is stored in the memory 12. That is, in the memory 12, as theprinter information for each of the printers connected to the PC 1,information on the supporting program 42 corresponding to each printeris stored in addition to the model information and the accessinformation of each printer.

The editing APP is, for example, an APP for generating and/or editingimage data and document data. Examples of the editing APP 43 areMicrosoft Word® and Power Point®. Further, the editing APP 43 may be anAPP provided by the vender of the printer 2 and/or printer 3. Theediting APP 43 is configured to receive a user operation including aninstruction to cause the printer 2 to perform a particular operation.Specifically, the editing APP 43 is configured to receive, through theUI 20, a print instruction which causes the printer 2 to executeprinting.

It is noted that processes and process steps of each flowchart describedbelow basically indicate processes of the CPU 11 in accordance withinstructions described in respective programs such as the supportingprogram 42. That is, in the following description of the processes andsteps, terms “determine,” “extract,” “select,” “calculate,” “identify,”“obtain,” “receive,” “control” and the like are those performed by theCPU 11. It is noted that the processes by the CPU 11 include controllingof hardware using an API of the OS 21. In the following description,operations of the programs will be described with omitting the detaileddescription of the OS 21. That is, in the following description, adescription “a program B controls hardware C” may be interpreted to “aprogram B uses the API of the OS 21 to control the hardware C.” Further,a process of the CPU 11 in accordance with the instruction described ina program may be described in a simplified manner. For example, the nameof the program is omitted and simply described such that “the CPU 11performs.” Further, a process of the CPU 11 in accordance with aninstruction described in the program may be described in a simplifiedmanner such that “the program A performs” with omitting the term “CPU.”

It is noted that the term “obtain” is used to mean that a request is notnecessarily be made. That is, a process of the CPU 11 to receive datawithout any request is included within a concept that “the CPU 11obtains data.” Further, the term “data” in the present specification isused to mean a bit array readable by a computer. Multiple pieces of datahaving different formats but substantially the same contents will betreated as the same data. So is the information in the presentspecification. It is noted that terms “request” and “instruct” representconcepts of outputting information indicating something is requested andinformation indicating something is instructed, respectively. It is alsonoted that information representing something is requested or somethingis instructed may be simply referred to by terms “request” or“instruct.”

Further, a process of the CPU 11 to determine whether or not informationA indicates an event B may be described conceptually such that “the CPU11 determines whether event B or not based on information A.”Furthermore, a process of the CPU 11 to determine whether informationindicates event B or event C may be described conceptually such that“the CPU 11 determines whether event B or event C based on informationA.”

Next, operations of the print system will be described with reference toFIGS. 2-4. As shown in FIG. 2, the print system is characterized in thatthe supporting program 42 restricts printing if intermediate image datais processed in an intermediate image data processing process inaccordance with print parameters edited in a print parameter editingprocess.

The supporting program 42 is a program that the general-use printingprogram 41 instructs to execute when a print instruction to executeprinting using the general-use printing program 41 is received throughthe editing APP 43 or the like in a state where a printer correspondingto the supporting program 42 is designated. In the followingdescription, a case where the PC 1 receives, through the UI 20 (e.g.,with the editing APP 43), an instruction to execute printing with theprinter 2 through the general-use printing program 41 in a state whereimage data subjected to be printed is designated and the supportingprogram 42 corresponding to a type of a model of the printer 2 isimplemented in the PC 1 will be described.

Firstly, the editing APP 43 receives, through the UI 20, designation ofan image subjected to be printed and an input of an instruction toexecute printing (arrow A). An image that the editing APP 43 displays isan example of an image subjected to be printed. The editing APP 43displays, for example, documents edited with the editing APP 43 orpictures and the like read with the editing APP 43 as the images. Then,the editing APP 43 which received the print instruction delivers a printexecution notification indicating contents of received print instructionto the OS 21. It is noted that, in FIG. 2, operations of the OS 21 areomitted.

When the print execution notification indicating usage of thegeneral-use printing program 41 is received, the OS 21 activates thegeneral-use printing program 41 and delivers the print executionnotification to the general-use printing program 41 (arrow B). Thegeneral-use printing program 41 can obtain, from the print executionnotification, various pieces of information included in the printinstruction such as information indicating a printer to be caused toexecute printing, print queue information for identifying a print queue,information indicating print parameters set with the APP, informationindicating image data subjected to be printed, and information foridentifying a user who instructed to execute printing. It is noted that,as will be described later, these pieces of information are used in thesupporting program 42 as well.

The general-use printing program 41 identifies, based on the informationincluded in the print execution notification, a printer designated as adevice to be caused to execute printing. For example. when the printer 2is designated as the device to be caused to execute printing, thegeneral-use printing program 41 identifies the model of the printer 2based on the model information of the printer included in the printerinformation stored in the memory 12. Then, since the supporting program42 corresponding to the printer 2 designated by the print instruction isstored in the memory 12, the general-use printing program 41 outputs anexecution command for causing the supporting program 42 to executeprocesses to activate the supporting program 42. That is, in response tothe detection of the print execution notification by the general-useprinting program 41, the execution command is output from thegeneral-use printing program 41 to the supporting program 42.

The supporting program 42 is capable of executing a plurality ofprocesses. For example, the supporting program 42 can execute a printparameter editing process for editing print parameters to be used inprinting, and an intermediate image data processing process forprocessing intermediate image data generated by the general-use printingprogram 41 in accordance with the print parameters. The supportingprogram 42 executes processes in accordance with types and orders ofexecution commands output from the general-use printing program 41.

The general-use printing program 41 outputs an execution command forcausing the supporting program 42 to execute the print parameter editingprocess (arrow C). To the execution command of the print parameterediting process, print parameters that the editing APP 43 has receivedare attached. The supporting program 42 can interpret the printparameters.

Upon receiving the execution command of the print parameter editingprocess from the general-use printing program 41 (arrow C), thesupporting program 42 displays a print parameter editing screen usingthe UI 20 (arrow D1). The supporting program 42 can obtain the printparameters edited in the editing APP 43 from the execution command ofthe print parameter editing process. For example, the supporting program42 reads out print parameters that cannot be edited in the editing APP43 from a storage area (e.g., the memory 12) and displays them on theprint parameter editing screen along with the print parameters obtainedfrom the execution command That is, the print parameter editing screencan receive change of the print parameters set in the editing APP 43 andsetting of the print parameters that cannot be set in the editing APP43.

As the print parameters, there are general-use parameters that are usedin the generation of print data by the general-use printing program 41and intrinsic parameters that are not used in the generation of printdata by the general-use printing program 41. The general-use parametersare, for example, parameters for setting a sheet size, a printingresolution and color/monochromatic printing. The intrinsic parametersare, for example, parameters for setting sheet tray designation,both-side/single-side printing, aggregation printing and addition ofwatermarks. The print parameter editing screen is a screen for setting,changing and adding the intrinsic parameters. The print parameterediting screen may further be configured such that the general-useparameters can be set, changed and added. It is noted that generalediting APPs 43 receives setting, change and addition of the general-useparameters but usually do not receive, or usually do not have astructure for receiving setting, change and addition of the intrinsicparameters.

The general-use parameters are parameters that can be mutually exchangedbetween the general-use printing program 41 and the supporting program42. Regarding the general-use parameters, the supporting program 42edits the very print parameters of a print job. The supporting program42 may edit the print parameters by overwriting the print parameters ofthe print job, or may edit the print parameters through the general-useprinting program 41 by providing the print parameters to the general-useprinting program 41.

On the other hand, the intrinsic parameters are parameters that cannotbe mutually exchanged between the general-use printing program 41 andthe supporting program 42. The supporting program 42 stores theintrinsic parameters in a storage area for the supporting program 42 inthe memory 12 and edits and reads out the intrinsic parameters withoutusing the general-use printing program 41. The storage area for thesupporting program 42 may be, for example, a registry prepared by the OS21. It is noted that, if the general-use printing program 41 can dealwith the intrinsic parameters as well, the supporting program 42 mayedit the intrinsic parameters through the general-use printing program41.

An example of the print parameter editing screen is shown in FIG. 3.FIG. 3 shows a watermark editing screen DA10 for performing settings ona watermark to be combined with an image indicated by the intermediateimage data. The watermark editing screen DA10 includes, for example, astyle selecting area SA10, a character setting area SA12, an image filesetting area SA14 and a position setting area SA16.

In the style selecting area SA10, it is selected whether to setcharacters or image files as the watermark. In the character settingarea SA12, various settings on characters are performed in casecharacters are selected in the style selecting area SA10. The varioussettings on characters include, for example, settings of contents to bedisplayed, font, style, size and color. In the image file setting areaSA14, various settings on image files are performed in case image filesare selected in the style selecting area SA10. The various settings onimage files include, for example, settings of save location of an imagefile, image magnification/reduction ratio and transparency. In theposition setting area SA16, a printing position of the watermark is set.The watermark editing screen DA10 is provided with an OK button A10 forreceiving set contents and a CANCEL button A12 for aborting the settingprocess.

Referring back to FIG. 2, the supporting program 42 receives setcontents in the print parameter editing screen when, for example, the OKbutton A10 is pressed (arrow D2). Then, the supporting program 42updates the print parameters received from the general-use printingprogram 41 in accordance with the received set contents, and stores theupdated print parameters in a predetermined storage area as theintrinsic parameters (arrow D3). For example, the supporting program 42updates the print parameters by attaching set, to the print parametersreceived from the general-use printing program 41, contents displayed onthe watermark editing screen DA10 shown in FIG. 3 at the time the OKbutton A10 is pressed. The print parameter editing processes indicatedby the arrows D1-D3 are examples of a receiving process. Alternatively,the supporting program 42 may edit the print parameters by overwritingthe print parameters with the print parameters attached to the executioncommand of the print parameter editing process, or may edit the printparameters through the general-use printing program 41 by providing theprint parameters to the general-use printing program 41.

It is noted that the print parameter editing screen is not limited tothe watermark editing screen DA10 but may be screens for performingsettings on aggregation setting, dividing, and magnification/reductionof an image indicated by the image data.

Referring back to FIG. 2, when the edition of the print parameters inthe print parameter editing process is finished, the supporting program42 transmits an end notification to the general-use printing program 41and terminates the process (arrow E). At this time, the supportingprogram 42 attaches print parameters to the end notification. If thegeneral-use printing program 41 supports the print parameters edited inthe print parameter editing process, the attached print parameters areprint parameters after the edition. On the other hand, if the printparameters edited in the print parameter editing process are theintrinsic parameters that the general-use printing program 41 does notsupport, the print parameters before the edition are attached to the endnotification. In this case, the intrinsic parameters after the editionare stored in the memory 12 to use them in the later process by thesupporting program 42. It is noted that the above-described settings forprocessing an image in an intermediate image data processing process(arrow H1) which will be described later such as the settings forprocessing the watermark are examples of process settings.

After outputting the execution command of the print parameter editingprocess, when the end notification from the supporting program 42 isreceived, the OS 21 activates the general-use printing program 41 anddelivers the end notification to the general-use printing program 41(arrow E).

After receiving the end notification, the general-use printing program41 generates the intermediate image data by converting a format of theimage data included in the print execution notification to a format ofthe intermediate image data and generates a print job including theintermediate image data (arrow F). There are various types of image dataas the image data included in the editing APP 43, and the general-useprinting program 41 converts received image data to an intermediateimage data suitable for the generation of the print data. It is notedthat, if the image data included in the print execution notification issuitable for the generation of the print data, the generation of theintermediate image data may be omitted and the image data may bedirectly used as the intermediate image data. The intermediate imagedata is, for example, XPS format data.

After generating the intermediate image data, the general-use printingprogram 41 outputs, to the supporting program 42, an execution commandfor causing the supporting program 42 to execute an intermediate imagedata processing process for processing the intermediate image data. Theintermediate image data generated by the general-use printing program 41is attached to the execution command.

Upon receiving the execution command of the intermediate image dataprocessing process after the print parameter editing process has beenfinished (arrow G), the supporting program 42 processes an imageindicated by the intermediate image data in accordance with the processsettings included in the print parameters received from the general-useprinting program 41 or the intrinsic parameters stored in the memory 12in the print parameter editing process (arrow H1). The process at thearrow H1 is an example of the intermediate image data processingprocess. For example, aggregation of images, division of an image,magnification/reduction of an image, combining of a watermark image orthe like correspond to the image processing. The supporting program 42can obtain various pieces of information included in the printinstruction from the print parameters received from the general-useprinting program 41 or the intrinsic parameters stored in the memory 12in the print parameter editing process and can process the intermediateimage data. That is, the supporting program 42 has a function ofprocessing an image being a subject to be printed.

Then, the supporting program 42 displays a print preview screen usingthe UI 20 (arrow H2). The process at the arrow H2 is an example of apreview process. In the print preview screen, for example, an imageindicated by the intermediate image data processed by the supportingprogram 42 is displayed. The intermediate image data processed by thesupporting program 42 is an example of processed intermediate imagedata.

An example of the print preview screen is shown in FIG. 4. For example,the supporting program 42 combines a watermark with an image indicatedby the intermediate image data in accordance with the set contents inthe watermark editing screen DA10 shown in FIG. 3 and causes the UI 20to display a print preview screen DA 20 shown in FIG. 4. In the printpreview screen DA 20, a preview image PR 20, a PRINT button A 20, aRE-EDIT button A22 and a CANCEL PRINTING button A24 are displayed.

The preview image PR 20 represents a print image to be printed. As thepreview image PR20, for example, an image in which the character string“COPY” being a content to be displayed as a watermark is displayed inthe set font, size, color and the like and is further overlaid on theimage while tilting it by “45°”. Thus, the user can directly confirm,through the PC 1, the print image to which the intrinsic parameters(e.g., the watermark) with which the general-use printing program 41cannot deal are reflected. Further, the user can determine whether theprint image is an intended one or not before printing by the printer 2starts.

The PRINT button A20 is a button for receiving an operation instructingto execute printing. The RE-EDIT button A22 is a button for receiving anoperation instructing to re-edit the watermark. The CANCEL PRINTINGbutton A24 is a button for receiving an operation instructing to cancelprinting. Therefore, the print preview screen DA20 can receive theresult of the user's determination, through the direct confirmation ofthe print image, on whether the print image is an intended image or not.

Referring back to FIG. 2, the supporting program 42 determines whetherto restrict printing or not in accordance with the operation of thebuttons displayed on the print preview screen (arrow H3). The process atthe arrow H3 is an example of a determining process. That is, forexample, when the RE-EDIT button A22 (see FIG. 4) is pressed and therebythe instruction to re-edit the print parameters is received, thesupporting program 42 determines to restrict printing and transmits areturn notification to the general-use printing program 41 (arrow I1).The process at the arrow I1 is an example of a restricting process. Thereturn notification is a notification that instructs the general-useprinting program 41 to transmit, to the supporting program 42, theexecution command of the print parameter editing process.

In response to receiving the return notification, the general-useprinting program 41 returns to the process for outputting the executioncommand of the print parameter editing process (arrow J1). Uponreceiving the execution command of the print parameter editing processagain from the general-use printing program 41, the supporting program42 for example displays the watermark editing screen DA10 shown in FIG.3 again (arrow D1). At this time, the current process settings, that is,the set contents with which printing has been restricted may bereflected in the areas SA10-SA16 of the watermark editing screen DA10 tomake it easier for the user to set different contents. Further, in theareas SA10-SA16 of the watermark editing screen DA10, default settingmay be reflected. In this case, since the user can redo from thesettings of the intrinsic parameters such as the settings of thewatermarks without redoing from the input of the print instruction usingthe editing APP 43, the print system is convenient to use.

Further, for example, when the CANCEL PRINTING button A24 (see FIG. 4)is operated and the supporting program 42 thereby receives theinstruction to cancel printing, the supporting program 42 determines torestrict printing and transmits a cancel notification to the general-useprinting program 41 (arrow 12). The process at the arrow 12 is anexample of the restricting process. The cancel notification is anotification that instructs the general-use printing program 41 tocancel printing.

In response to receiving the cancel notification, the general-useprinting program 41 cancel the printing process (arrow J2). Then, thegeneral-use printing program 41 notifies the editing APP 43 that theprinting has been cancelled (arrow J21). The editing APP 43 for exampledisplays, using the UI 20, that the printing has been cancelled. Thus,the user can certainly avoid the undesirable processed intermediateimage data from being printed. Further, the user can re-input the printinstruction to the editing APP 43 and redo the settings of the printparameters.

For example, when the PRINT button A20 (see FIG. 4) is operated and thesupporting program 42 thereby receives the instruction to executeprinting, the supporting program 42 determines not to restrict printingand transmits a print continuation notification to the general-useprinting program 41 (arrow 13). The process at the arrow 13 is anexample of the restricting process. The print continuation notificationis a notification that instructs the general-use printing program 41 tocontinue the printing process.

In response to receiving the print continuation notification, thegeneral-use printing program 41 generates print data (arrow J3). Printparameters for generating the print data are the print parameters editedin the print parameter editing process. Intermediate image data used asa generating element of the print data is the intermediate image dataprocessed in the intermediate image data processing process. The printdata generated by the general-use printing program 41 is print data of aformat that can be used in printing with various types of printers. Forexample, the print data is PWG Raster data or PDF data. It is notedthat, when the supporting program 42 transmits the print data to theprinter 2 without using the general-use printing program 41, thesupporting program 42 may convert the print data to a data formatdifferent from those mentioned above and transmit the converted printdata.

After generating the print data, the general-use printing program 41transmits, to the printer 2, a print command to which the print data isattached (arrow K). Thus, in the printer 2 which received the printcommand, printing of an image of the print data is executed inaccordance with the print data attached to the print command. If printdata to which a command is attached is received, the printer 2 performsoperations indicated by the command when executing printing.

It is noted that the supporting program 42 may execute a print dataediting process. In this case, the supporting program 42 edits the printdata as the print data editing process. For example, the supportingprogram 42 adds, to the print data, commands for causing the printer 2to execute functions unique to the printer 2. The functions unique tothe printer 2 include, for example, a toner save setting and a finishersetting. If the printer 2 has functions of adding watermarks,header/footer and the like to an image by itself, as the print dataediting process, the supporting program 42 may add commands for causingthe printer 2 to execute these functions to the print data.

In the above-described example, the intermediate image data is attachedto the execution command. However, for example, the general-use printingprogram 41 may store the intermediate image data in the memory 12, andthe supporting program 42 which received the execution command may readout the intermediate image data from the memory 12 and execute theintermediate image data processing process. Further, the supportingprogram 42 may store the general-use parameters and the intrinsicparameters in the memory 12 and transmit only the end notificationnotifying that the print parameter editing process is finished to thegeneral-use printing program 41, and the general-use printing program 41may transmit only the execution command of the intermediate image dataprocessing process to the supporting program 42. Further, the supportingprogram 42 may store the processed intermediate image data in the memory12 and transmit only the print continuation notification to thegeneral-use printing program 41. In this case, the general-use printingprogram 41 reads out the processed intermediate image data from thememory 12 to generate the print data.

Next, referring to a flowchart shown in FIG. 5, the intermediate imagedata processing process of the print system according to the presentembodiment will be described. This process is executed by the CPU 11 ofthe PC 1 in accordance with the OS 21 in response to, after the OS 21receives the end notification indicating the end of the print parameterediting process, the OS 21 causing the general-use printing program 41to transmit, to the supporting program 42, an execution command of theintermediate image data processing process, and the supporting programreceiving the execution command (arrow G indicated in FIG. 2).

As shown in FIG. 5, the CPU 11 processes the intermediate image dataattached to the execution command in accordance with the printparameters attached to the execution command (S50). The process at S50is an example of the intermediate image data processing process. Thus,for example, the processed intermediate image data in which a watermarkis combined with the intermediate image data is generated.

The CPU 11 causes the UI 20 to display the print preview in which theintermediate image data processed in S50, that is, the processedintermediate image data, is used (S52). The process at S52 is an exampleof the preview process. Thus, on the PC 1, for example, the printpreview screen DA20 shown in FIG. 4 is displayed.

After S52, the CPU 11 receives a user input to the UI 20 (S54). That is,for example, the CPU 11 receives an operation of either of the PRINTbutton A20, the RE-EDIT button A22 and the CANCEL PRINTING button A24shown in FIG. 4.

After S54, the CPU 11 determines the content of the user input (S56).The process at S56 is an example of the determining process. When theRE-EDIT button A22 is operated (S56: RE-EDIT), the CPU 11 notifies thegeneral-use printing program 41 to return to the print parameter editingprocess of the supporting program 42 (S60) and terminates the process.That is, the CPU 11 transmits the return notification to the general-useprinting program 41.

On the other hand, when the CANCEL PRINTING button A24 is operated (S56:CANCEL PRINTING), the CPU 11 notifies the general-use printing program41 that the printing is cancelled (S58) and terminates the process. Thatis, the CPU 11 transmits the cancel notification to the general-useprinting program 41.

Further, When the PRINT button A20 is operated (S56: PRINT), the CPU 11notifies the general-use printing program 41 to continue the printingprocess (S62) and terminates the process. That is, the CPU 11 transmitsthe print continuation notification to the general-use printing program41. The processes at S58-S62 are examples of the restricting process.

As described above, if there is the print instruction to the general-useprinting program 41, the PC 1 which executes the supporting program 42of the present embodiment receives the edition of the print parametersusing the supporting program 42. Then the PC 1 determines whether torestrict the printing based on the processed intermediate image data towhich the processes in accordance with the edited print parameters. Forexample, when the PRINT button A20 is pressed and the PC 1 determinesthat the printing should not be restricted, the PC 1 can cause theprinter 2 to execute printing of an image to which processes intended bythe user are applied by not restricting the execution of printing usingthe supporting program 42. On the other hand, for example, when theRE-EDIT button A22 or the CANCEL PRINTING button A24 is pressed and thePC 1 determines that the printing should be restricted, the PC 1 cancause the printer 2 not to execute printing of an image to whichprocesses not intended by the user are applied by restricting theexecution of printing using the supporting program 42. Therefore,according to the present embodiment, in the PC 1 to which theOS-standard general-use printing program 41 is implemented, it ispossible to realize a technique for reducing printing based on an imageto which processes not intended by the user are applied.

The above-described supporting program 42 causes the UI 20 to displaythe print preview screen DA20 to let the user confirm the print image,and determines whether to restrict the execution of printing or not inaccordance with the user input to the UI 20. However, the supportingprogram 42 may be configured to automatically determine whether torestrict the execution of printing without causing the UI 20 to displaythe print preview screen DA20. A procedure of processes in this casewill be described with reference to FIG. 6. It is noted that, amongprocesses shown in FIG. 6, processes similar to those shown in FIG. 5are assigned the same numerals as those used in FIG. 5 in the drawingand descriptions thereof are appropriately omitted.

The processes shown in FIG. 6 are executed in the CPU 11 of the PC 1 inaccordance with the OS 21 by the same trigger as the processes shown inFIG. 5 (i.e., at the arrow G shown in FIG. 2). After the processedintermediate image data is generated (S50), the CPU 11 obtainsprocessing contents (S100).

If it is determined that the processing contents include combining of awatermark (S102: YES), the CPU 11 determines whether the watermark isnot within an image size of an image indicated by the intermediate imagedata (S104). The process at S104 is an example of the determiningprocess. If it is determined that the watermark is not within the imagesize of the image indicated by the intermediate image data (S104: YES),there is a possibility that, even if the processed intermediate imagedata is printed, characters or images of the watermark are printed in astate where they are broken off halfway. Therefore, the CPU 11 notifiesthe general-use printing program 41 to return to the print parameterediting process of the supporting program 42 (S60) and terminates theprocess. The watermark is an example of a designated image.

In the above example, the watermark not being within the image size isset as the condition for restricting the executing of printing.Additionally, if there is a specific area such as an area in theintermediate image data where printing of the watermark is notpreferable, the watermark overlapping with the specific area may furtherbe set as the condition for restricting the execution of print.

If it is determined that the watermark is within the image size of theimage indicated by the intermediate image data (S104: NO), the CPU 11determines whether the processing contents include a reducing processfor reducing an image included in the intermediate image data (S106).The process at S106 is an example of the determining process. Thereducing process is executed, for example, when executing theaggregation printing, when printing an image while dividing it, and whenprinting an image while adjusting its magnification ratio.

If it is determined that the processing contents include the reducingprocess (S106: YES), the CPU 11 determines whether a character size of acharacter object included in the image data after a reduction by thereducing process is smaller than a predetermined size (S108). If thecharacter size after the reduction is smaller than the predeterminedsize, even if the printing is executed, there will be a problem that thecharacter cannot be read or is hard to read. Accordingly, if it isdetermined that the character size after the reduction is smaller thanthe predetermined size (S108: YES), the CPU 11 notifies the general-useprinting program 41 to return to the print parameter editing process ofthe supporting program 42 (S60) and terminates the process.

If it is determined that the character size after the reduction is notsmaller than the predetermined size (S108: NO), the CPU 11 determineswhether the processing contents include an addition process for addinginformation indicating a header or a footer to the intermediate imagedata (S110). The process at S110 is an example of the determiningprocess. If it is determined that the processing contents include theaddition process (S110: YES), the CPU 11 determines whether the headeror the footer indicated by the addition information overlaps withobjects included in an image indicated by the intermediate image data(S112). If the header or the footer is overlapping with the objects,there is possibility that the header or the footer cannot be read evenif the intermediate image data is printed. Accordingly, if it isdetermined that the header or the footer overlaps with the objects(S112: YES), the CPU 11 notifies the general-use printing program 41 toreturn to the print parameter editing process of the supporting program42 (S60) and terminates the process.

If it is determined that the header or the footer does not overlap withthe objects (S112: NO), the CPU 11 notifies the general-use printingprogram 41 to continue the printing process (S62). It is noted that theCPU 11 also notifies the general-use printing program 41 to continue theprinting process (S62) if it is determined that the processing contentsinclude neither of the combining of a watermark, the reduction of animage and the addition of information to the header or the footer (S102:NO, S106: NO, S110: NO), and terminates the process.

Therefore, the supporting program 42 which causes the PC 1 to executethe intermediate image data processing process shown in FIG. 6 canautomatically restrict the printing based on the image not intended bythe user without the user's judgement, and thus the supporting program42 is convenient to use. It is noted that it is not necessary to executeall of S104, S108 and S112 but it is sufficient to execute at least oneof them. Further, other conditions may be added to FIG. 6.

It is noted that the embodiment disclosed in the present specificationis only an illustrative example and is not intended to limit aspects ofthe present disclosures. Accordingly, the technique disclosed in thepresent specification can be modified or enhanced without departing fromaspects of the disclosures. For example, the device connected to the PC1 need not be limited to the single-function printer but may be anydevice which has a printing function (e.g., an MFP, a copier, afacsimile machine and the like). Further, the number of printersconnected to the PC 1 needs not be limited to that in the illustratedexample but may be one or three or more.

The print system may be configured such that only one of the processesshown in FIG. 5 and the processes shown in FIG. 6 are executed, or theuser can select one of them.

Further, in the embodiment, the supporting program 42 can execute aplurality of processes, but the supporting program 42 need not be ableto execute all the processes. For example, the supporting program 42 mayonly include the configuration for the intermediate image dataprocessing process. Further, the print parameter editing process and theintermediate image data processing process may be separate programs.

The supporting program 42 may not receive the process settings in theprint parameter editing process. For example, the process settings maybe performed in the editing APP 43, and the supporting program 42 mayreceive the process settings directly from the editing APP 43.

In the embodiment, as operations of the supporting program 42, only thedisplaying of the print preview screen and the restriction of theexecution of printing are described. However, the supporting program 42may have other roles.

In the embodiment, the supporting program 42 is executed by outputtingthe execution command of the supporting program 42 from the general-useprinting program 41. However, the execution timing of the supportingprogram 42 is not limited to the above. For example, the supportingprogram 42 may be executed in response to a direct execution instructionfrom the OS 21 or may be a resident program. If the supporting program42 is a resident program, the supporting program 42 may execute theaforementioned operations upon receiving execution commands.

In any of the flowcharts disclosed in the embodiment, the order ofmultiple processes at arbitrary multiple steps may be changedarbitrarily or may be executed in parallel unless there occurs conflictsin processing contents.

The processes disclosed in the present embodiment may be executed by asingle CPU, a plurality of CPU's, hardware such as an ASIC or acombination thereof. Further, the processes disclosed in the presentembodiment may be realized by various modes such as a non-transitoryrecording medium storing programs for executing the processes, methodsfor executing the processes and the like.

What is claimed is:
 1. A non-transitory computer-readable recordingmedium for an information processing apparatus, the informationprocessing apparatus having a controller, a printer being connected tothe information processing apparatus, the recording medium containingcomputer-executable instructions realizing a supporting programcorresponding to the printer connected to the information processingapparatus, the supporting program causing, when executed by thecontroller, the information processing apparatus to perform: when ageneral-use printing program receives a printing command to cause theprinter to execute printing of an image, a receiving process ofreceiving a process setting used for processing image data generated bythe general-use printing program, the image data indicating an imagesubjected to be printed in accordance with the printing command, thegeneral-use printing program being a program implemented in an operatingsystem of the information processing apparatus in advance; an image dataprocessing process of generating a processed image data which is theimage data to which a process based on the process setting is applied; adetermining process of determining whether a condition for restrictingprinting based on the processed image data is satisfied; and arestricting process of executing a first process of restricting printingbased on the processed image data when determining that the condition issatisfied, and executing a second process of not restricting theprinting based on the processed image data when determining that thecondition is not satisfied.
 2. The non-transitory computer-readablerecording medium according to claim 1, wherein the supporting program,as executed by the controller, causes the information processingapparatus to perform, when the printing based on the processed imagedata is not restricted in the restricting process, providing theprocessed image data to the general-use printing program and causing thegeneral-use printing program to continue to perform a process forexecuting the printing by the printer based on the processed image data.3. The non-transitory computer-readable recording medium according toclaim 1, wherein the supporting program, as executed by the controller,causes the information processing apparatus to perform, displaying animage indicated by the processed image data on a display of theinformation processing apparatus, and a preview process of receiving aselection whether to execute the printing based on the processed imagedata, and wherein, in the determining process, the condition issatisfied when the selection not to execute the printing is received inthe preview process.
 4. The non-transitory computer-readable recordingmedium according to claim 1, wherein the determining process determineswhether the condition is satisfied based on the processed image data. 5.The non-transitory computer-readable recording medium according to claim1, wherein a process based on the process setting is a combining processfor combining a designated image designated by a user with an imageindicated by the image data, and wherein, in the determining process,the condition is satisfied when the designated image is not within animage size of an image indicated by the processed image data.
 6. Thenon-transitory computer-readable recording medium according to claim 1,wherein a process based on the process setting is a reducing process forreducing an image indicated by the image data, and wherein, in thedetermining process, the condition is satisfied when a character size ofa character object included in the image data after a reduction by thereducing process is smaller than a predetermined size.
 7. Thenon-transitory computer-readable recording medium according to claim 1,wherein a process based on the process setting is an addition processfor adding information indicating a header or a footer to the imagedata, and wherein, in the determining process, the condition issatisfied when the header or the footer indicated by the informationoverlaps with an object included in an image indicated by the processedimage data.
 8. The non-transitory computer-readable recording mediumaccording to claim 1, wherein the supporting program, as executed by thecontroller, causes the information processing apparatus to perform thereceiving process again when the printing based on the processed imagedata is restricted in the restricting process.
 9. The non-transitorycomputer-readable recording medium according to claim 1, wherein thesupporting program, as executed by the controller, causes theinformation processing apparatus to perform canceling the printing inaccordance with the printing command when the printing based on theprocessed image data is restricted in the restricting process.
 10. Aninformation processing apparatus having a controller, wherein asupporting program corresponding to a printer connected to theinformation processing apparatus is implemented in the informationprocessing apparatus, wherein an operating system of the informationprocessing apparatus has a general-use printing program which isimplemented in the operating system in advance, wherein, by using thesupporting program under control of the operating system, the controlleris configured to perform: when a general-use printing program, which isimplemented in an operating system of the information processingapparatus in advance, receives a printing command to cause the printerto execute printing of an image, a receiving process of receiving aprocess setting used for processing image data generated by thegeneral-use printing program, the image data indicating an imagesubjected to be printed in accordance with the printing command; animage data processing process of generating a processed image data whichis the image data to which a process based on the process setting isapplied; a determining process of determining whether a condition forrestricting printing based on the processed image data is satisfied; anda restricting process of executing a first process of restrictingprinting based on the processed image data when determining that thecondition is satisfied, and executing a second process of notrestricting the printing based on the processed image data whendetermining that the condition is not satisfied.
 11. A method ofcontrolling an information processing apparatus having a controller, aprinter being connected to the information processing apparatus, asupporting program corresponding to the printer being implemented in theinformation processing apparatus, an operating system of the informationprocessing apparatus having a general-use printing program which isimplemented in the operating system in advance, wherein the methodincludes: when a general-use printing program, which is implemented inan operating system of the information processing apparatus in advance,receives a printing command to cause the printer to execute printing ofan image, receiving a process setting used for processing image datagenerated by the general-use printing program, the image data indicatingan image subjected to be printed in accordance with the printingcommand; generating a processed image data which is the image data towhich a process based on the process setting is applied; determiningwhether a condition for restricting printing based on the processedimage data is satisfied; and executing a first process of restrictingprinting based on the processed image data when determining that thecondition is satisfied, and executing a second process of notrestricting the printing based on the processed image data whendetermining that the condition is not satisfied.